enum EditOp { Insert, Delete, Replace }  

fn edit_distance(a: &str, b: &str) -> usize {  
    let mut dp = vec![vec![0; b.len()+1]; a.len()+1];  
    for i in 0..=a.len() {  
        for j in 0..=b.len() {  
            // TODO: 使用 match 处理不同操作  
        }  
    }  
    dp[a.len()][b.len()]  
}  

#[test]  
fn test_edit_distance() {  
    assert_eq!(edit_distance("kitten", "sitting"), 3);  
}  